package sqlbean

import (
	"github.com/chinahdkj/xorm"
	"time"
	"gitee.com/dayu1985/framework/utils"
)

/***************************************************
 * @author 	zander
 * @time	2018年2月5日11:58:38
 * @brief	基础表
 ***************************************************/


type Bean struct {
	ID      *string `json:"_id" xorm:"varchar(50) pk '_id'"`
	Created *int64  `json:"created" xorm:"created"`
	Changed *int64  `json:"changed" xorm:"updated 'changed'"`
}

func (b *Bean) BeforeInsert() {
	b.ID = utils.PtrOfString(utils.Guid())
	b.Changed = utils.PtrOfInt64(time.Now().Unix())
}

func (b *Bean) BeforeUpdate() {
	b.Changed = utils.PtrOfInt64(time.Now().Unix())
}

//将实体对象映射到数据库
func Syncs(engine *xorm.Engine) (err error) {
	err = engine.Sync2(tables...)
	return err
}

//需要实例化的数据库实体对象
var tables []interface{}

func RegisterTables(obj interface{}) {
	tables = append(tables, obj)
}




